package com.xnyzc.lhy.finance.mapper.bill;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xnyzc.lhy.finance.entity.bill.OaDBill;
import com.xnyzc.lhy.finance.params.dto.bill.OaDriverBillDTO;
import com.xnyzc.lhy.finance.params.vo.bill.OaDriverBillGroupVO;
import com.xnyzc.lhy.finance.params.vo.bill.OaDriverBillVO;
import com.xnyzc.lhy.finance.params.vo.bill.mapper.OaDriverBillMapperVO;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.*;

/**
 * <p>
 * 司机账单表 Mapper 接口
 * </p>
 *
 * @author cuixiaojian
 * @since 2019-10-16
 */
public interface OaDBillMapper extends BaseMapper<OaDBill> {

    /**
     * 获取账单类型
     * @param billType 收支标识
     * @return Map
     */
    List<Map<String, String>> queryBillType(@Param("billType") String billType);

    /// --------------------- 账单列表 ----------------------------

    /**
     * 检索司机账单父级列表(得到存在账单的日期范围)
     * @param oaDriverBillDTO
     * @return
     */
    List<OaDriverBillGroupVO> queryDriverBillGroup(OaDriverBillDTO oaDriverBillDTO);

    /**
     * 检索司机账单子级列表信息
     * @param oaDriverBillDTO
     * @return
     */
    List<OaDriverBillMapperVO> queryDriverBillDetial(OaDriverBillDTO oaDriverBillDTO);

    /**
     * 查询收入和支出
     * @param oaDriverBillDTO
     * @return
     */
    OaDriverBillVO queryIncomeAndExpend(OaDriverBillDTO oaDriverBillDTO);

    /// --------------------- 账单详情 ----------------------------

    OaDBill queryDriverBillInfo(@Param("billId") Long billId);
}
